Module Descriptor এর মূল কাঠামো

Java Technologies - অ্যাপাচি আইভি (Apache IVY) IVY Module Descriptor ফাইল |
117
117

অ্যাপাচি আইভি (Apache Ivy) একটি শক্তিশালী ডিপেন্ডেন্সি ম্যানেজমেন্ট টুল যা প্রধানত জাভা প্রকল্পে লাইব্রেরি এবং ডিপেন্ডেন্সি ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। Module Descriptor বা ivy.xml ফাইল হচ্ছে আইভির ডিপেন্ডেন্সি এবং মডিউল সম্পর্কিত কনফিগারেশন ফাইল, যা প্রকল্পের ডিপেন্ডেন্সি, ভার্সন, রিপোজিটরি এবং অন্যান্য তথ্য সংরক্ষণ করে।

আইভির module descriptor ফাইলটি মূলত XML ফরম্যাটে লেখা হয় এবং এটি প্রকল্পের ডিপেন্ডেন্সি ম্যানেজমেন্টের ভিত্তি হিসেবে কাজ করে। এই ফাইলটির মধ্যে আপনি প্রকল্পের নাম, গোষ্ঠী (organization), সংস্করণ, এবং প্রকল্পের জন্য প্রয়োজনীয় ডিপেন্ডেন্সি গুলি উল্লেখ করেন।

Module Descriptor (ivy.xml) এর মূল কাঠামো


এখানে ivy.xml ফাইলের মূল কাঠামো এবং উপাদানগুলো ব্যাখ্যা করা হলো:

1. ivy.xml ফাইলের সাধারণ কাঠামো:

<ivy-module version="2.0">
    <info organisation="com.example" module="myapp" revision="1.0"/>
    
    <!-- Repositories where dependencies will be searched -->
    <repositories>
        <repository name="central" url="https://repo.maven.apache.org/maven2"/>
    </repositories>

    <!-- Dependencies for the project -->
    <dependencies>
        <dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
    </dependencies>
</ivy-module>

এখানে:

  • : এটি আইভি মডিউল ডেসক্রিপ্টরের মূল ট্যাগ যা version 2.0 এর ব্যবহার নিশ্চিত করে।
  • : এই ট্যাগটি মডিউল সম্পর্কিত মৌলিক তথ্য রাখে, যেমন গোষ্ঠী (organization), মডিউল নাম (module), এবং সংস্করণ (revision)।
  • : এখানে নির্দিষ্ট করা হয় সেই রিপোজিটরি যেখানে আইভি লাইব্রেরি অনুসন্ধান করবে।
  • : এই ট্যাগের মধ্যে প্রকল্পের জন্য প্রয়োজনীয় ডিপেন্ডেন্সিগুলি দেওয়া হয়।

Module Descriptor এর প্রধান উপাদানসমূহ


1.

এই ট্যাগটি একটি আইভি মডিউল ডেসক্রিপ্টরের মূল ট্যাগ। এটি পুরো ফাইলের কাঠামো এবং সংস্করণ নির্ধারণ করে।

<ivy-module version="2.0">

2.

ট্যাগটি মডিউলের মৌলিক তথ্য ধারণ করে, যেমন গোষ্ঠী (organisation), মডিউল নাম (module), এবং সংস্করণ (revision)। এটি আইভি মডিউল ডেসক্রিপ্টরের শুরুতে থাকে।

<info organisation="com.example" module="myapp" revision="1.0"/>
  • organisation: এটি আপনার প্রকল্পের বা গ্রুপের নাম যা সাধারণত আপনার ডোমেইন নামের সাথে সম্পর্কিত থাকে।
  • module: এটি প্রকল্প বা মডিউলের নাম।
  • revision: এটি মডিউলের সংস্করণ সংখ্যা।

3.

ট্যাগটি সেই রিপোজিটরি সমূহ নির্ধারণ করে, যেখান থেকে ডিপেন্ডেন্সি সংগ্রহ করা হবে। এটি সাধারণত Maven Central বা Ivy Repository হতে পারে।

<repositories>
    <repository name="central" url="https://repo.maven.apache.org/maven2"/>
</repositories>
  • repository: প্রতিটি repository ট্যাগের মধ্যে একটি রিপোজিটরি URL থাকে, যেখানে লাইব্রেরি এবং ডিপেন্ডেন্সি খুঁজে পাওয়া যায়।

4.

এই ট্যাগটি প্রকল্পের জন্য নির্দিষ্ট ডিপেন্ডেন্সিগুলি সংজ্ঞায়িত করে। প্রতিটি ট্যাগের মধ্যে লাইব্রেরির গোষ্ঠী (organization), নাম (name), এবং সংস্করণ (revision) থাকে।

<dependencies>
    <dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
  • org: লাইব্রেরির গোষ্ঠী বা প্রোভাইডারের নাম।
  • name: লাইব্রেরির নাম।
  • rev: লাইব্রেরির সংস্করণ।

5.

এটি লাইব্রেরি বা মডিউল এর বিভিন্ন আউটপুট ফাইল যেমন JAR, WAR, অথবা EAR ফাইল সংজ্ঞায়িত করে। সাধারণত এটি মডিউলগুলির উৎপাদন আউটপুট ফাইলগুলি সংরক্ষণ এবং পরিচালনা করতে ব্যবহৃত হয়।

<artifacts>
    <artifact name="myapp" type="jar" ext="jar"/>
</artifacts>

এখানে:

  • name: উৎপাদিত ফাইলের নাম।
  • type: ফাইলের ধরন (যেমন jar, war)।
  • ext: ফাইলের এক্সটেনশন।

6.

এই ট্যাগটি ডিপেন্ডেন্সির কনফিগারেশন বা স্কোপ সেট করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি নির্দিষ্ট করে দিতে পারেন কোন ডিপেন্ডেন্সি কোন কনফিগারেশনে ব্যবহৃত হবে।

<configurations>
    <configuration name="compile"/>
</configurations>

এখানে:

  • configuration: এটি একটি কনফিগারেশন ট্যাগ যা নির্দিষ্ট করে দেয় যে এই ডিপেন্ডেন্সি কোন কনফিগারেশনের জন্য প্রযোজ্য।

7.

এই ট্যাগটি একটি কেন্দ্রীয় স্থান থেকে ডিপেন্ডেন্সি ম্যানেজমেন্ট প্রদান করে, যা ডিপেন্ডেন্সি রেজোলিউশনে সাহায্য করে এবং কনফ্লিক্ট রেজোলিউশন করে।

<dependencyManagement>
    <dependencies>
        <dependency org="org.springframework" name="spring-core" rev="5.2.4.RELEASE"/>
    </dependencies>
</dependencyManagement>

এখানে:

  • dependencyManagement ট্যাগের মধ্যে আপনি সাধারণত একটি ডিপেন্ডেন্সি ডিফাইন করেন যা বিভিন্ন ডিপেন্ডেন্সির মধ্যে ভাগ করা হতে পারে।

Module Descriptor (ivy.xml) এর ব্যবহার


  1. ডিপেন্ডেন্সি ম্যানেজমেন্ট: ivy.xml ফাইলের মাধ্যমে আপনার প্রোজেক্টের সমস্ত ডিপেন্ডেন্সি এবং তাদের ভার্সন নির্ধারণ করা যায়।
  2. রিপোজিটরি ম্যানেজমেন্ট: রিপোজিটরি নির্ধারণ করে আপনি কোথা থেকে লাইব্রেরি সংগ্রহ করবেন তা চিহ্নিত করতে পারেন।
  3. কনফিগারেশন ব্যবস্থাপনা: বিভিন্ন কনফিগারেশন এবং ডিপেন্ডেন্সি স্কোপ নির্ধারণ করতে সহায়তা করে।
  4. ডিপেন্ডেন্সি রেজোলিউশন: আইভি স্বয়ংক্রিয়ভাবে ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়া সম্পাদন করে, যাতে আপনি সহজেই প্রয়োজনীয় লাইব্রেরি ডাউনলোড করতে পারেন।

সারাংশ


Module Descriptor (ivy.xml) ফাইল অ্যাপাচি আইভির মূল কাঠামো, যা আপনার প্রকল্পের ডিপেন্ডেন্সি এবং মডিউল সম্পর্কিত তথ্য সংরক্ষণ করে। এই ফাইলে আপনি , , , , , এবং ট্যাগ ব্যবহার করে ডিপেন্ডেন্সি এবং রিপোজিটরি সংক্রান্ত কনফিগারেশন পরিচালনা করতে পারেন। এটি আইভির ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়া স্বয়ংক্রিয়ভাবে পরিচালনা করতে সহায়তা করে এবং আপনার প্রোজেক্টের ডিপেন্ডেন্সি ম্যানেজমেন্ট সহজ করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion